export default{
    data(){
        return {
            size: "",// 控件大小
            loading: false,//页面加载状态

            dialogVisible: false,//对话框展示状态
            form: {

            },
            rules: [

            ],


            initForm: {}
        }
    },
    created(){
        //拷贝初始数据
        this.initForm = this.$utils.deepCopy(this.form)
    },
    methods: {
        //打开对话框(供外部调用)
        open(type = "") {
            //打开对话框
            this.dialogVisible = true
            //等待渲染
            this.$nextTick(function(){
                //移除验证结果
                this.$refs.ruleForm?.clearValidate()
            })
        },
        //关闭对话框(供外部调用)
        close() {
            this.dialogVisible = false
        },
        //打开加载状态(供外部调用)
        openLoading() {
            this.loading = true
        },
        //关闭加载状态(供外部调用)
        closeLoading() {
            this.loading = false
        },
        //初始化数据(供外部调用)
        initData(_row = "") {
            //默认表单内容
            const form = this.$utils.deepCopy(this.initForm)
            //如果是编辑，则覆盖部分字段值
            if (_row) {
                //拷贝一份
                var row = this.$utils.deepCopy(_row)
                //遍历所有字段，有值则填入，没值则默认
                for (var key in this.form) {
                    if(row[key] === undefined || row[key] === null){
                        //空值，不做任何操作
                    }else{
                        //有值，进行赋值
                        form[key] = row[key]
                    }
                }
            }
            //最终值
            this.form = form
        },
        //关闭前的回调
        handleClose() {
            //关闭对话框
            this.dialogVisible = false
        },
        //处理取消按钮的事件
        handleCancelBtn() {
            //移除验证结果
            this.$refs.ruleForm?.clearValidate()
            //关闭对话框
            this.dialogVisible = false
        },
        //处理确认按钮的事件
        handleSubmitBtn() {
            //执行校验
            this.$refs.ruleForm?.validate((valid) => {
                //判断校验结果
                if (valid) {
                    //校验成功
                    //深拷贝
                    var form = this.$utils.deepCopy(this.form)
                    //事件抛出
                    this.$emit('submit',form)
                } else {
                    console.log('error submit!!')
                    return false
                }
            })
        }
    }
}